import utils from './../utils.js';
import platform from '../platform/index.js';

export default platform.hasStandardBrowserEnv ?

    // Standard browser envs support document.cookie
    {
        write(name, value, expires, path, domain, secure) {
            const cookie = [name + '=' + encodeURIComponent(value)];

            utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

            utils.isString(path) && cookie.push('path=' + path);

            utils.isString(domain) && cookie.push('domain=' + domain);

            secure === true && cookie.push('secure');

            document.cookie = cookie.join('; ');
        },

        read(name) {
            const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
            return (match ? decodeURIComponent(match[3]) : null);
        },

        remove(name) {
            this.write(name, '', Date.now() - 86400000);
        }
    }

    :

    // Non-standard browser env (web workers, react-native) lack needed support.
    {
        write() {
        },
        read() {
            return null;
        },
        remove() {
        }
    };

